"use strict";

exports.__esModule = true;
exports.isFunction = exports.isEmpty = exports.isDefined = void 0;
exports.isHtmlElement = isHtmlElement;
exports.isNil = void 0;
exports.isObject = isObject;
exports.isString = isString;
exports.isUndefined = void 0;
function isString(obj) {
  return Object.prototype.toString.call(obj) === '[object String]';
}
function isObject(obj) {
  return Object.prototype.toString.call(obj) === '[object Object]';
}
function isHtmlElement(node) {
  return node && node.nodeType === Node.ELEMENT_NODE;
}
var isFunction = exports.isFunction = function isFunction(functionToCheck) {
  var getType = {};
  return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
};
var isUndefined = exports.isUndefined = function isUndefined(val) {
  return val === void 0;
};
var isDefined = exports.isDefined = function isDefined(val) {
  return val !== undefined && val !== null;
};
var isNil = exports.isNil = function isNil(val) {
  return val === null;
};
var isEmpty = exports.isEmpty = function isEmpty(val) {
  return !val && val !== 0 || Array.isArray(val) && val.length === 0 || isObject(val) && !Object.keys(val).length;
};